import request from './index'

// 获取商品列表
export function getProductList(params) {
  return request({
    url: '/products',
    method: 'get',
    params
  })
}

// 获取商品详情
export function getProductDetail(id) {
  return request({
    url: `/products/${id}`,
    method: 'get'
  })
}

// 创建商品
export function createProduct(data) {
  return request({
    url: '/products',
    method: 'post',
    data
  })
}

// 更新商品
export function updateProduct(id, data) {
  return request({
    url: `/products/${id}`,
    method: 'put',
    data
  })
}

// 删除商品
export function deleteProduct(id) {
  return request({
    url: `/products/${id}`,
    method: 'delete'
  })
}

// 上传商品图片
export function uploadProductImage(data) {
  console.log('上传商品图片API被调用，数据:', data);
  
  // 如果是FormData类型，打印更多细节
  if (data instanceof FormData) {
    console.log('FormData内容:');
    for (let pair of data.entries()) {
      if (pair[1] instanceof File) {
        console.log(pair[0], '文件名:', pair[1].name, '类型:', pair[1].type, '大小:', pair[1].size);
      } else {
        console.log(pair[0], pair[1]);
      }
    }
  }
  
  return request({
    url: '/upload/product',
    method: 'post',
    data,
    headers: {
      'Content-Type': 'multipart/form-data'
    },
    // 添加请求配置，不对FormData进行处理
    transformRequest: [function(data) {
      return data; // 返回原始数据，不进行任何转换
    }]
  }).then(response => {
    console.log('上传商品图片API响应:', response);
    // 确保返回的数据包含url字段
    if (response && !response.url && response.data && response.data.url) {
      response.url = response.data.url;
    }
    return response;
  }).catch(error => {
    console.error('上传商品图片API错误:', error);
    // 提供详细的错误信息
    if (error.response) {
      console.error('错误状态码:', error.response.status);
      console.error('错误数据:', error.response.data);
    }
    throw error;
  });
}